generovani JPG nahledu
Otázka od: Tomas Bradle
21. 8. 2004 10:59
Zdravim vsechny,
mam nasledujici proceduru, ktera generuje JPG nahledy,
zdroj je v ms: TMemoryStream (vytazeno z blobu),
vysledek je prev: TJPEGImage.
procedure GenPreview;
begin
jpg:=TJPEGImage.create;
try
ms.Position:=0;
jpg.LoadFromStream(ms);
bmp:=TBitmap.Create;
try
bmp.Assign(jpg);
bmp2:=TBitmap.Create;
try
bmp2.Height:=100;
bmp2.Width:=100*bmp.Width div bmp.Height;
bmp2.Canvas.StretchDraw(bmp2.canvas.ClipRect, bmp);
prev.Assign(bmp2);
finally
bmp2.free;
end; {try}
finally
bmp.free;
end; {try}
finally
jpg.free;
end; {try}
end;
Nevi nekdo proc, kdyz na pocitaci mam nastavene rozliseni
obrazovky 16-bit barva, tak je vsechno OK, ale kdyz nastavim
256 barev, tak ty nahledy jsou cerny a misto tech 5-6kB maji
jen cca 1kB ?
diky
Tomas Bradle
t.bradle@worldonline.cz
Odpovedá: Pavol Stugel, NETGraphics
21. 8. 2004 13:31
... no to bude tym ze kazdy ten obrazok chce zmodifikovat tych 236
farieb co ma system
k dispoziicii "k obrazu svojmu" a vysledkom je cierno cierna tma ...
proste 256 je malo
na obrazky a s tym musis ratat ... mozes napr. v pripade 256 farebneho
modu zobrazovat
grayscale obrazky co je lepsi efekt ako pokus o farbu ...
>Nevi nekdo proc, kdyz na pocitaci mam nastavene rozliseni
>obrazovky 16-bit barva, tak je vsechno OK, ale kdyz nastavim
>256 barev, tak ty nahledy jsou cerny a misto tech 5-6kB maji
>jen cca 1kB ?
>
Odpovedá: Tomas Bradle
22. 8. 2004 3:24
No to by bylo, kdybych to chtel zobrazovat, ale ja nic nezobrazuju. Pouze
presampluju a zase ulozim. Proc do toho taha rozliseni obrazovky to nevim.
Melo by se resamplovat i na serveru, kde nemusi byt zrovna Hi-tech grafika.
Na zobrazovani je tech 256 samozrejme malo.
Tomas Bradle
t.bradle@worldonline.cz
----- Original Message -----
From: "Pavol Stugel, NETGraphics" <palo@netgraphics.sk>
To: <delphi-l@clexpert.cz>
Sent: Saturday, August 21, 2004 2:30 PM
Subject: Re: generovani JPG nahledu
> ... no to bude tym ze kazdy ten obrazok chce zmodifikovat tych 236
> farieb co ma system
> k dispoziicii "k obrazu svojmu" a vysledkom je cierno cierna tma ...
> proste 256 je malo
> na obrazky a s tym musis ratat ... mozes napr. v pripade 256 farebneho
> modu zobrazovat
> grayscale obrazky co je lepsi efekt ako pokus o farbu ...
>
>
> >Nevi nekdo proc, kdyz na pocitaci mam nastavene rozliseni
> >obrazovky 16-bit barva, tak je vsechno OK, ale kdyz nastavim
> >256 barev, tak ty nahledy jsou cerny a misto tech 5-6kB maji
> >jen cca 1kB ?
> >
>
Odpovedá: Pavol Stugel, NETGraphics
22. 8. 2004 8:38
...skus sa pohrat s PixelFormat a doplnit to niekam za .Create,
ale skor tam bude nejaka komplikovanost v tom kode ...
(resp. ak tam mas NT 3.5,4 alebo zly ovladac na grafarne,tak
v moze byt aj chybna imp. stretchdraw funkcie ..)
..a daj jpg, bmp2, bmp do lokalnych premennych a
nemusis to komplikovat cez tie try finally ...
bmp2.Height:=100;
bmp2.Width:=100*bmp.Width div bmp.Height;
-> bmp2.PixelFormat := pf32bit;
bmp2.Canvas.Stretch